package com.utils.excel;

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.*;

/**
 * 修改Excel文件内容
 */
public class UpdateExcel {
	public static void main(String[] args) throws IOException {
		//excel文件的路径
		String filePath = "D:\\视频案例\\Java实现excel解析\\实训工作计划测试Excel.xlsx";
		//这个文件的对象
		File file = new File(filePath);
		//获取文件对应的输入流
		InputStream is = new FileInputStream(file);
		//获取文件的Workbook对象。操作后缀为xlsx
		Workbook workbook = new XSSFWorkbook(is);
		//修改后缀为xls的对象。只有获取Workbook有区别，下面修改的过程一样
		//Workbook workbook2 = new HSSFWorkbook(is);

		//获取要修改的sheet工作簿
		Sheet sheet = workbook.getSheetAt(0);//0代表获取第一个工作簿

		//获取第三行
		Row row = sheet.getRow(2);//2代表第三行，索引是从0开始，到长度-1结束

		//通过行获取第三列
		Cell cell = row.getCell(2);

		//打印这个原来的内容
		DataFormatter df = new DataFormatter();
		System.out.println("需要修改的内容是："+df.formatCellValue(cell));

		//设置内容
		//一定要先设置数据类型
		cell.setCellType(CellType.STRING);
		cell.setCellValue("你好，世界！");

		//将这些内容覆盖到源文件中
		OutputStream out = new FileOutputStream(filePath);
		workbook.write(out);

		//关闭资源
		out.close();
		is.close();

		System.out.println("文件修改成功！");
	}
}
